home *** CD-ROM | disk | FTP | other *** search
/ Game.EXE 2002 October / Game.EXE_10_2002.iso / PG Soft / morrowind alchemy (.txt) next >
Encoding:
EPOC OPL Source  |  2002-06-30  |  10.7 KB  |  535 lines

  1.  
  2.  
  3. PROC findcombinations:
  4.     LOCAL i%, j%, found%, ff%, att%, chk%(10)
  5.     GLOBAL ingr$(71,19), attr$(68,21), ingrattr%(284)
  6.     
  7.     ingr$(1)="Alit Hide"
  8.     ingr$(2)="Ampoule Pod"
  9.     ingr$(3)="Ash Salts"
  10.     ingr$(4)="Ash Yam"
  11.     ingr$(5)="Bittergreen Petals"
  12.     ingr$(6)="Black Anther"
  13.     ingr$(7)="Black Lichen"
  14.     ingr$(8)="Bloat"
  15.     ingr$(9)="Bonemeal"
  16.     ingr$(10)="Bungler's Bane"
  17.     ingr$(11)="Chokeweed"
  18.     ingr$(12)="Coda Flower"
  19.     ingr$(13)="Comberry"
  20.     ingr$(14)="Corkbulb Root"
  21.     ingr$(15)="Corprus Weepings"
  22.     ingr$(16)="Corprusmeat"
  23.     ingr$(17)="Crab Meat"
  24.     ingr$(18)="Deadra Skin"
  25.     ingr$(19)="Deadra's Heart"
  26.     ingr$(20)="Diamond"
  27.     ingr$(21)="Dreugh Wax"
  28.     ingr$(22)="Ectoplasm"
  29.     ingr$(23)="Emerald"
  30.     ingr$(24)="Fire Petal"
  31.     ingr$(25)="Fire Salts"
  32.     ingr$(26)="Frost Salts"
  33.     ingr$(27)="Ghoul Heart"
  34.     ingr$(28)="Gold Kanet"
  35.     ingr$(29)="Gravedust"
  36.     ingr$(30)="Green Lichen"
  37.     ingr$(31)="Guar Hide"
  38.     ingr$(32)="Hackle-lo Leaf"
  39.     ingr$(33)="Heather"
  40.     ingr$(34)="Hound Meat"
  41.     ingr$(35)="Hypha Facia"
  42.     ingr$(36)="Kagouti Hide"
  43.     ingr$(37)="Kresh Fiber"
  44.     ingr$(38)="Kwama Cuttle"
  45.     ingr$(39)="Large Kwama Egg"
  46.     ingr$(40)="Luminous Russula"
  47.     ingr$(41)="Marshmerrow"
  48.     ingr$(42)="Moon Sugar"
  49.     ingr$(43)="Muck"
  50.     ingr$(44)="Netch Leather"
  51.     ingr$(45)="Pearl"
  52.     ingr$(46)="Racer Plumes"
  53.     ingr$(47)="Rat Meat"
  54.     ingr$(48)="Raw Ebony"
  55.     ingr$(49)="Raw Glass"
  56.     ingr$(50)="Red Lichen"
  57.     ingr$(51)="Resin"
  58.     ingr$(52)="Roobrush"
  59.     ingr$(53)="Ruby"
  60.     ingr$(54)="Saltrice"
  61.     ingr$(55)="Scales"
  62.     ingr$(56)="Scamp Skin"
  63.     ingr$(57)="Scathecraw"
  64.     ingr$(58)="Scrap Metal"
  65.     ingr$(59)="Scrib Jelly"
  66.     ingr$(60)="Scrib Jerky"
  67.     ingr$(61)="Scuttle"
  68.     ingr$(62)="Shalk Resin"
  69.     ingr$(63)="Sload Soap"
  70.     ingr$(64)="Spore Pod"
  71.     ingr$(65)="Stoneflower Petals"
  72.     ingr$(66)="Trama Root"
  73.     ingr$(67)="Vampire Dust"
  74.     ingr$(68)="Violet Corprinus"
  75.     ingr$(69)="Void Salts"
  76.     ingr$(70)="Wickwheat"
  77.     ingr$(71)="Willow Anther"
  78.     attr$(1)="Burden"
  79.     attr$(2)="Cure Blight Disease"
  80.     attr$(3)="Cure Common Disease"
  81.     attr$(4)="Cure Paralyzation"
  82.     attr$(5)="Cure Poison"
  83.     attr$(6)="Detect Animal"
  84.     attr$(7)="Detect Enchantment"
  85.     attr$(8)="Detect Key"
  86.     attr$(9)="Dispel"
  87.     attr$(10)="Drain Agility"
  88.     attr$(11)="Drain Endurance"
  89.     attr$(12)="Drain Fatigue"
  90.     attr$(13)="Drain Health"
  91.     attr$(14)="Drain Intelligence"
  92.     attr$(15)="Drain Luck"
  93.     attr$(16)="Drain Magicka"
  94.     attr$(17)="Drain Personality"
  95.     attr$(18)="Drain Speed"
  96.     attr$(19)="Drain Strength"
  97.     attr$(20)="Drain Willpower"
  98.     attr$(21)="Feather"
  99.     attr$(22)="Fire Shield"
  100.     attr$(23)="Fortify Agility"
  101.     attr$(24)="Fortify Endurance"
  102.     attr$(25)="Fortify Fatigue"
  103.     attr$(26)="Fortify Health"
  104.     attr$(27)="Fortify Intelligence"
  105.     attr$(28)="Fortify Luck"
  106.     attr$(29)="Fortify Magicka"
  107.     attr$(30)="Fortify Personality"
  108.     attr$(31)="Fortify Speed"
  109.     attr$(32)="Fortify Strength"
  110.     attr$(33)="Fortify Willpower"
  111.     attr$(34)="Frost Shield"
  112.     attr$(35)="Invisibility"
  113.     attr$(36)="Levitate"
  114.     attr$(37)="Light"
  115.     attr$(38)="Lightning Shield"
  116.     attr$(39)="Night-Eye"
  117.     attr$(40)="Paralyze"
  118.     attr$(41)="Poison"
  119.     attr$(42)="Reflect"
  120.     attr$(43)="Resist Common Disease"
  121.     attr$(44)="Resist Fire"
  122.     attr$(45)="Resist Frost"
  123.     attr$(46)="Resist Magicka"
  124.     attr$(47)="Resist Poison"
  125.     attr$(48)="Resist Shock"
  126.     attr$(49)="Restore Agility"
  127.     attr$(50)="Restore Endurance"
  128.     attr$(51)="Restore Fatigue"
  129.     attr$(52)="Restore Health"
  130.     attr$(53)="Restore Intelligence"
  131.     attr$(54)="Restore Luck"
  132.     attr$(55)="Restore Magicka"
  133.     attr$(56)="Restore Personality"
  134.     attr$(57)="Restore Speed"
  135.     attr$(58)="Restore Strength"
  136.     attr$(59)="Restore Willpower"
  137.     attr$(60)="Spell Absorbtion"
  138.     attr$(61)="Swift Swim"
  139.     attr$(62)="Telekinesis"
  140.     attr$(63)="Vampirism"
  141.     attr$(64)="Water Breathing"
  142.     attr$(65)="Water Walking"
  143.     ingrattr%(1)=14
  144.     ingrattr%(2)=47
  145.     ingrattr%(3)=62
  146.     ingrattr%(4)=6
  147.     ingrattr%(5)=65
  148.     ingrattr%(6)=40
  149.     ingrattr%(7)=6
  150.     ingrattr%(8)=20
  151.     ingrattr%(9)=10
  152.     ingrattr%(10)=46
  153.     ingrattr%(11)=2
  154.     ingrattr%(12)=46
  155.     ingrattr%(13)=27
  156.     ingrattr%(14)=32
  157.     ingrattr%(15)=43
  158.     ingrattr%(16)=8
  159.     ingrattr%(17)=53
  160.     ingrattr%(18)=35
  161.     ingrattr%(19)=11
  162.     ingrattr%(20)=16
  163.     ingrattr%(21)=10
  164.     ingrattr%(22)=44
  165.     ingrattr%(23)=11
  166.     ingrattr%(24)=37
  167.     ingrattr%(25)=19
  168.     ingrattr%(26)=45
  169.     ingrattr%(27)=18
  170.     ingrattr%(28)=5
  171.     ingrattr%(29)=16
  172.     ingrattr%(30)=27
  173.     ingrattr%(31)=33
  174.     ingrattr%(32)=6
  175.     ingrattr%(33)=49
  176.     ingrattr%(34)=62
  177.     ingrattr%(35)=12
  178.     ingrattr%(36)=17
  179.     ingrattr%(37)=18
  180.     ingrattr%(38)=11
  181.     ingrattr%(39)=9
  182.     ingrattr%(40)=19
  183.     ingrattr%(41)=15
  184.     ingrattr%(42)=51
  185.     ingrattr%(43)=3
  186.     ingrattr%(44)=20
  187.     ingrattr%(45)=17
  188.     ingrattr%(46)=36
  189.     ingrattr%(47)=14
  190.     ingrattr%(48)=13
  191.     ingrattr%(49)=12
  192.     ingrattr%(50)=55
  193.     ingrattr%(51)=22
  194.     ingrattr%(52)=42
  195.     ingrattr%(53)=4
  196.     ingrattr%(54)=52
  197.     ingrattr%(55)=38
  198.     ingrattr%(56)=28
  199.     ingrattr%(57)=12
  200.     ingrattr%(58)=28
  201.     ingrattr%(59)=20
  202.     ingrattr%(60)=52
  203.     ingrattr%(61)=12
  204.     ingrattr%(62)=13
  205.     ingrattr%(63)=16
  206.     ingrattr%(64)=0
  207.     ingrattr%(65)=51
  208.     ingrattr%(66)=48
  209.     ingrattr%(67)=38
  210.     ingrattr%(68)=54
  211.     ingrattr%(69)=32
  212.     ingrattr%(70)=3
  213.     ingrattr%(71)=40
  214.     ingrattr%(72)=61
  215.     ingrattr%(73)=55
  216.     ingrattr%(74)=24
  217.     ingrattr%(75)=10
  218.     ingrattr%(76)=39
  219.     ingrattr%(77)=10
  220.     ingrattr%(78)=35
  221.     ingrattr%(79)=42
  222.     ingrattr%(80)=8
  223.     ingrattr%(81)=32
  224.     ingrattr%(82)=58
  225.     ingrattr%(83)=15
  226.     ingrattr%(84)=20
  227.     ingrattr%(85)=23
  228.     ingrattr%(86)=6
  229.     ingrattr%(87)=19
  230.     ingrattr%(88)=13
  231.     ingrattr%(89)=29
  232.     ingrattr%(90)=52
  233.     ingrattr%(91)=10
  234.     ingrattr%(92)=11
  235.     ingrattr%(93)=44
  236.     ingrattr%(94)=13
  237.     ingrattr%(95)=60
  238.     ingrattr%(96)=40
  239.     ingrattr%(97)=13
  240.     ingrattr%(98)=23
  241.     ingrattr%(99)=45
  242.     ingrattr%(100)=22
  243.     ingrattr%(101)=18
  244.     ingrattr%(102)=55
  245.     ingrattr%(103)=34
  246.     ingrattr%(104)=44
  247.     ingrattr%(105)=40
  248.     ingrattr%(106)=5
  249.     ingrattr%(107)=23
  250.     ingrattr%(108)=0
  251.     ingrattr%(109)=13
  252.     ingrattr%(110)=1
  253.     ingrattr%(111)=15
  254.     ingrattr%(112)=58
  255.     ingrattr%(113)=14
  256.     ingrattr%(114)=3
  257.     ingrattr%(115)=16
  258.     ingrattr%(116)=50
  259.     ingrattr%(117)=30
  260.     ingrattr%(118)=3
  261.     ingrattr%(119)=19
  262.     ingrattr%(120)=13
  263.     ingrattr%(121)=12
  264.     ingrattr%(122)=24
  265.     ingrattr%(123)=56
  266.     ingrattr%(124)=28
  267.     ingrattr%(125)=51
  268.     ingrattr%(126)=40
  269.     ingrattr%(127)=64
  270.     ingrattr%(128)=54
  271.     ingrattr%(129)=56
  272.     ingrattr%(130)=21
  273.     ingrattr%(131)=18
  274.     ingrattr%(132)=17
  275.     ingrattr%(133)=51
  276.     ingrattr%(134)=25
  277.     ingrattr%(135)=42
  278.     ingrattr%(136)=7
  279.     ingrattr%(137)=15
  280.     ingrattr%(138)=10
  281.     ingrattr%(139)=12
  282.     ingrattr%(140)=7
  283.     ingrattr%(141)=12
  284.     ingrattr%(142)=31
  285.     ingrattr%(143)=43
  286.     ingrattr%(144)=39
  287.     ingrattr%(145)=54
  288.     ingrattr%(146)=30
  289.     ingrattr%(147)=16
  290.     ingrattr%(148)=18
  291.     ingrattr%(149)=47
  292.     ingrattr%(150)=12
  293.     ingrattr%(151)=65
  294.     ingrattr%(152)=64
  295.     ingrattr%(153)=51
  296.     ingrattr%(154)=40
  297.     ingrattr%(155)=34
  298.     ingrattr%(156)=26
  299.     ingrattr%(157)=64
  300.     ingrattr%(158)=12
  301.     ingrattr%(159)=41
  302.     ingrattr%(160)=0
  303.     ingrattr%(161)=52
  304.     ingrattr%(162)=7
  305.     ingrattr%(163)=20
  306.     ingrattr%(164)=12
  307.     ingrattr%(165)=31
  308.     ingrattr%(166)=9
  309.     ingrattr%(167)=11
  310.     ingrattr%(168)=15
  311.     ingrattr%(169)=14
  312.     ingrattr%(170)=8
  313.     ingrattr%(171)=17
  314.     ingrattr%(172)=3
  315.     ingrattr%(173)=24
  316.     ingrattr%(174)=27
  317.     ingrattr%(175)=17
  318.     ingrattr%(176)=4
  319.     ingrattr%(177)=10
  320.     ingrattr%(178)=9
  321.     ingrattr%(179)=64
  322.     ingrattr%(180)=43
  323.     ingrattr%(181)=20
  324.     ingrattr%(182)=36
  325.     ingrattr%(183)=0
  326.     ingrattr%(184)=0
  327.     ingrattr%(185)=16
  328.     ingrattr%(186)=40
  329.     ingrattr%(187)=5
  330.     ingrattr%(188)=47
  331.     ingrattr%(189)=10
  332.     ingrattr%(190)=5
  333.     ingrattr%(191)=34
  334.     ingrattr%(192)=57
  335.     ingrattr%(193)=14
  336.     ingrattr%(194)=19
  337.     ingrattr%(195)=18
  338.     ingrattr%(196)=22
  339.     ingrattr%(197)=18
  340.     ingrattr%(198)=37
  341.     ingrattr%(199)=3
  342.     ingrattr%(200)=16
  343.     ingrattr%(201)=52
  344.     ingrattr%(202)=57
  345.     ingrattr%(203)=1
  346.     ingrattr%(204)=43
  347.     ingrattr%(205)=20
  348.     ingrattr%(206)=23
  349.     ingrattr%(207)=13
  350.     ingrattr%(208)=5
  351.     ingrattr%(209)=13
  352.     ingrattr%(210)=21
  353.     ingrattr%(211)=53
  354.     ingrattr%(212)=10
  355.     ingrattr%(213)=51
  356.     ingrattr%(214)=29
  357.     ingrattr%(215)=19
  358.     ingrattr%(216)=52
  359.     ingrattr%(217)=17
  360.     ingrattr%(218)=65
  361.     ingrattr%(219)=50
  362.     ingrattr%(220)=61
  363.     ingrattr%(221)=16
  364.     ingrattr%(222)=4
  365.     ingrattr%(223)=56
  366.     ingrattr%(224)=58
  367.     ingrattr%(225)=19
  368.     ingrattr%(226)=5
  369.     ingrattr%(227)=13
  370.     ingrattr%(228)=59
  371.     ingrattr%(229)=13
  372.     ingrattr%(230)=38
  373.     ingrattr%(231)=48
  374.     ingrattr%(232)=53
  375.     ingrattr%(233)=33
  376.     ingrattr%(234)=5
  377.     ingrattr%(235)=2
  378.     ingrattr%(236)=59
  379.     ingrattr%(237)=51
  380.     ingrattr%(238)=25
  381.     ingrattr%(239)=1
  382.     ingrattr%(240)=61
  383.     ingrattr%(241)=51
  384.     ingrattr%(242)=25
  385.     ingrattr%(243)=21
  386.     ingrattr%(244)=62
  387.     ingrattr%(245)=12
  388.     ingrattr%(246)=26
  389.     ingrattr%(247)=17
  390.     ingrattr%(248)=31
  391.     ingrattr%(249)=17
  392.     ingrattr%(250)=23
  393.     ingrattr%(251)=22
  394.     ingrattr%(252)=49
  395.     ingrattr%(253)=19
  396.     ingrattr%(254)=12
  397.     ingrattr%(255)=8
  398.     ingrattr%(256)=40
  399.     ingrattr%(257)=58
  400.     ingrattr%(258)=29
  401.     ingrattr%(259)=15
  402.     ingrattr%(260)=30
  403.     ingrattr%(261)=59
  404.     ingrattr%(262)=36
  405.     ingrattr%(263)=16
  406.     ingrattr%(264)=18
  407.     ingrattr%(265)=26
  408.     ingrattr%(266)=32
  409.     ingrattr%(267)=60
  410.     ingrattr%(268)=63
  411.     ingrattr%(269)=65
  412.     ingrattr%(270)=12
  413.     ingrattr%(271)=41
  414.     ingrattr%(272)=0
  415.     ingrattr%(273)=55
  416.     ingrattr%(274)=60
  417.     ingrattr%(275)=40
  418.     ingrattr%(276)=11
  419.     ingrattr%(277)=52
  420.     ingrattr%(278)=33
  421.     ingrattr%(279)=40
  422.     ingrattr%(280)=14
  423.     ingrattr%(281)=17
  424.     ingrattr%(282)=34
  425.     ingrattr%(283)=3
  426.     ingrattr%(284)=4
  427.             
  428. again::
  429.     dINIT "select ingredients",16+2
  430.     i%=0
  431.     DO
  432.         i%=i%+1
  433.         dCHOICE chk%(i%),"ingr "+NUM$(i%,3),ingr$(1)+",..."
  434.         j%=1
  435.         DO
  436.             j%=j%+1
  437.             dCHOICE chk%(i%),"",ingr$(j%)+",..."
  438.         UNTIL j%>=71
  439.         chk%(i%)=72
  440.         dCHOICE chk%(i%),"","-None-"
  441.     UNTIL i%>=9
  442.     dCHOICE chk%(10),"attr  ",attr$(1)+",..."
  443.     j%=1
  444.     DO
  445.         j%=j%+1
  446.         dCHOICE chk%(10),"",attr$(j%)+",..."
  447.     UNTIL j%>=65
  448.     chk%(10)=66
  449.     dCHOICE chk%(10),"","-None-"
  450.     IF DIALOG
  451.         CLS
  452.         found%=0
  453.         i%=0
  454.         DO
  455.             i%=i%+1
  456.             j%=i%
  457.             DO
  458.                 j%=j%+1
  459.                 IF (chk%(i%)<72) AND (chk%(j%)<72)
  460.                     rem have two non-empty input lines
  461.                     found%=found%+matchattr%:(chk%(i%),chk%(j%))
  462.                 ENDIF
  463.             UNTIL j%>=9
  464.         UNTIL i%>=8
  465.         IF (found%<1)
  466.             rem no results - search all for 1st ingredient
  467.             IF (chk%(1)=72)
  468.                 IF chk%(10)=66
  469.                     PRINT "Select at least one ingredient or attribute or press Esc to exit"
  470.                 ELSE
  471.                   Print attr$(chk%(10)),"=";
  472.                     i%=0
  473.                     DO
  474.                         i%=i%+1
  475.                         findattr%:(i%,chk%(10))
  476.                     UNTIL (i%>=71)
  477.                 ENDIF
  478.             ELSE
  479.                 found%=0
  480.                 i%=0
  481.                 DO
  482.                     i%=i%+1
  483.                     IF i%<>chk%(1)
  484.                         ff%=found%
  485.                         found%=found%+matchattr%:(chk%(1),i%)
  486.                         IF ((found%>=20) AND (ff%<20)) OR ((found%>=40) AND (ff%<40))
  487.                             PRINT "<Press any key to continue, Esc to exit>"
  488.                             IF GET=27
  489.                                 GOTO again::
  490.                             ENDIF
  491.                         ENDIF
  492.                     ENDIF
  493.                 UNTIL (i%>=71)
  494.             ENDIF
  495.         ENDIF
  496.         IF GET<>27
  497.             GOTO again::
  498.         ENDIF
  499.     ENDIF
  500. ENDP
  501.  
  502. PROC matchattr%:(a%,b%)
  503.     LOCAL i%, j%, f%
  504.     i%=1
  505.     f%=0
  506.     DO
  507.         j%=1
  508.         DO
  509.             IF (ingrattr%((a%-1)*4+i%)<>0) AND (ingrattr%((a%-1)*4+i%)=ingrattr%((b%-1)*4+j%))
  510.                 PRINT ingr$(a%),"+",ingr$(b%),"=",attr$(ingrattr%((a%-1)*4+i%))
  511.                 f%=f%+1
  512.             ENDIF
  513.             j%=j%+1
  514.         UNTIL j%>=5
  515.         i%=i%+1
  516.     UNTIL i%>=5
  517.     RETURN f%
  518. ENDP
  519.  
  520. PROC findattr%:(ind%,a%)
  521.     LOCAL i%, f%
  522.     i%=1
  523.     f%=0
  524.     DO
  525.         IF (ingrattr%((ind%-1)*4+i%)=a%)
  526.             PRINT ingr$(ind%),", ";
  527.             f%=f%+1
  528.         ENDIF
  529.         i%=i%+1
  530.     UNTIL i%>=5
  531.     RETURN f%
  532. ENDP
  533.  
  534.  
  535.